<?php
declare(strict_types=1);

namespace Dreamcat\ConfigClient\Popo;

use Dreamcat\ConfigClient\Consts\NacosConst;

/**
 * nacos应用基础信息
 * @author vijay
 */
class NacosAppInfo
{
    /** @var string 配置 ID */
    private $dataId;
    /** @var string 配置分组 */
    private $group = NacosConst::DEFAULT_GROUP;
    /** @var string 命名空间ID */
    private $namespaceName = NacosConst::DEFAULT_NAMESPACE;

    /**
     * @return string 配置 ID
     */
    public function getDataId(): string
    {
        return $this->dataId;
    }

    /**
     * @param string $dataId 配置 ID
     * @return static 当前对象
     */
    public function setDataId(string $dataId): NacosAppInfo
    {
        $this->dataId = $dataId;
        return $this;
    }

    /**
     * @return string 配置分组
     */
    public function getGroup(): string
    {
        return $this->group;
    }

    /**
     * @param string $group 配置分组
     * @return static 当前对象
     */
    public function setGroup(?string $group): NacosAppInfo
    {
        if ($group === null) {
            $this->group = NacosConst::DEFAULT_GROUP;
        } else {
            $this->group = $group;
        }
        return $this;
    }

    /**
     * @return string 命名空间ID
     */
    public function getNamespaceName(): string
    {
        return $this->namespaceName;
    }

    /**
     * @param string $namespaceName 命名空间ID
     * @return static 当前对象
     */
    public function setNamespaceName(?string $namespaceName): NacosAppInfo
    {
        if ($namespaceName === null) {
            $this->namespaceName = NacosConst::DEFAULT_NAMESPACE;
        } else {
            $this->namespaceName = $namespaceName;
        }
        return $this;
    }

}

# end of file
